В отличие от окна предварительного просмотра Crystal Report ActiveX, при использовании Crystal Report Smart Viewer программист имеет широкие возможности по настройке внешнего вида и функциональности окна вывода отчета. Проще всего настроить внешний вид окна просмотра отчета в окне Properties IDE Visual Basic:
Большинство названий свойств начинаются с Display или Enable, и могут принимать значения True и False. Предназначение всех этих свойств ясно из их названий.
Все эти свойства доступны и в коде. Например:
CRViewer1.EnableGroupTree = False CRViewer1.EnableRefreshButton = True If ck Then CRViewer1.EnablePrintButton = True Else CRViewer1.EnablePrintButton = False End If
В данном примере кода конструкция If…Else показывает или скрывает кнопку печати в зависимости от значения булевой переменной ck.
Кроме того, Crystal Report Smart Viewer предоставляет программисту возможность перехвата событий отчета (в Crystal Report ActiveX такой возможности нет вообще). Перечень этих событий можно увидеть, например, в раскрывающемся списке в окне кода формы:
Здесь самое важное – разобраться с аргументами, которые принимает тот или другой обработчик события. Я не буду здесь их описывать, их очень много, и при необходимости можно обратиться к справочной системе. Наиболее часто используемым аргументом является UseDefault. Если его установить в True (значение по умолчанию), операция будет благополучно завершена. При UseDefault = False, произойдет отмена операции, вызвавшей обработчик.
Ниже приводится пример обработки нажатия кнопки Refresh (обновить). В процедуре просто спрашивается у пользователя, хочет ли он обновить данные в отчете, и дается возможность отказаться от своих намерений:
Private Sub CRViewer1_RefreshButtonClicked(UseDefault As Boolean) ms = MsgBox("Вы действительно хотите обновить записи?", vbQuestion + vbYesNo, "Обновление") If ms = vbNo Then UseDefault = False End Sub